import { EmailBackupFrequency } from '@standardnotes/settings'
import { SettingsList } from './SettingsList'
import { SettingName } from '@standardnotes/domain-core'

export interface SettingsClientInterface {
  listSettings(): Promise<SettingsList>

  getSetting(name: SettingName, serverPassword?: string): Promise<string | undefined>

  getDoesSensitiveSettingExist(name: SettingName): Promise<boolean>

  updateSetting(name: SettingName, payload: string, sensitive?: boolean, totpToken?: string): Promise<void>

  deleteSetting(name: SettingName, serverPassword?: string): Promise<void>

  generateMfaSecret(): Promise<string>

  updateMfaSetting(secret: string, totpToken: string): Promise<void>

  getEmailBackupFrequencyOptionLabel(frequency: EmailBackupFrequency): string
}
